package br.com.cogerh.sidec.view;

import java.util.ArrayList;
import java.util.List;

import br.com.cogerh.sidec.dao.CompromissoRecusadoDAO;
import br.com.cogerh.sidec.dao.CompromissoRecusadoImpl;
import br.com.cogerh.sidec.model.CompromissoRecusado;
import br.com.cogerh.sidec.util.DAOfactory;

public class CompromissoRecusadoRN {
	private CompromissoRecusadoDAO compromissoRecusadoDAO;

	public void salvar(CompromissoRecusado compromissoRecusado) {
		compromissoRecusadoDAO = new CompromissoRecusadoImpl();

		compromissoRecusadoDAO.salvar(compromissoRecusado);
	}

	public List<CompromissoRecusado> listar() {
		compromissoRecusadoDAO = new CompromissoRecusadoImpl();

		return compromissoRecusadoDAO.listar();
	}

	public List<CompromissoRecusado> listarByFiltos(String numero,
			String reuniao, String responsavel) {
		compromissoRecusadoDAO = new CompromissoRecusadoImpl();

		List<CompromissoRecusado> compromissos = listar();
		List<CompromissoRecusado> compromissosRetorno = new ArrayList<CompromissoRecusado>();

		if (responsavel != "" && reuniao == "" && numero == "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getPessoa().getId()
						.toString().equals(responsavel)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}
		}

		if (responsavel != "" && reuniao == "" && numero != "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getPessoa().getId()
						.toString().equals(responsavel)
						&& compromissoRecusado.getCompromisso()
								.getNumeroCompromisso().toString()
								.equals(numero)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}
		}

		if (responsavel == "" && reuniao != "" && numero == "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getReuniao().getId()
						.toString().equals(reuniao)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}
		}

		if (numero == "" && reuniao != "" && responsavel != "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getReuniao().getId()
						.toString().equals(reuniao)
						&& compromissoRecusado.getCompromisso().getPessoa()
								.getId().toString().equals(responsavel)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}
		}

		if (numero != "" && reuniao == "" && responsavel == "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getNumeroCompromisso()
						.toString().equals(numero)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}
		}
		if (numero != "" && reuniao != "" && responsavel == "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getNumeroCompromisso()
						.toString().equals(numero)
						&& compromissoRecusado.getCompromisso().getReuniao()
								.getId().toString().equals(reuniao)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}

		}

		if (numero != "" && reuniao != "" && responsavel != "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				if (compromissoRecusado.getCompromisso().getNumeroCompromisso()
						.toString().equals(numero)
						&& compromissoRecusado.getCompromisso().getReuniao()
								.getId().toString().equals(reuniao)
						&& compromissoRecusado.getCompromisso().getPessoa()
								.getId().toString().equals(responsavel)) {
					compromissosRetorno.add(compromissoRecusado);
				}
			}

		}
		if (numero == "" && reuniao == "" && responsavel == "") {
			for (CompromissoRecusado compromissoRecusado : compromissos) {
				compromissosRetorno.add(compromissoRecusado);
			}
		}

		return compromissosRetorno;

	}

	public void excluir(CompromissoRecusado compromissoRecusado) {
		compromissoRecusadoDAO = new CompromissoRecusadoImpl();

		compromissoRecusadoDAO.excluir(compromissoRecusado);
	}

	public void editar(CompromissoRecusado compromissoRecusado) {
		compromissoRecusadoDAO = new CompromissoRecusadoImpl();

		compromissoRecusadoDAO.editar(compromissoRecusado);
	}


}
